package com.gtw.observer;

/**
 * 对象间存在一对多的依赖关系,使得每一个对象改变状态,所有依赖它的对象都会得到通知并自动更新
 * java.util提供观察者模式,对于被观察者,提供了Observable类,注入观察者后,调用notifyObservers(this);
 * 对于观察者,提供了Observer接口重写update接口
 * 优点:
 *      观察者和被观察者进行解耦
 * 缺点:
 *      观察者过多,会有效率问题,java自身的采用顺序执行
 * 使用场景:
 *      事件多级触发
 *      关联行为场景,需要注意关联关系是可拆分,不是"组合"关系
 * 注意事项:
 *      观察模式最多出现一个对象既是观察者又是被观察者
 *      与责任链的区别是,观察者广播链在传播的过程中消息是随时更改的,责任链在过程中基本上保持消息不可变
 */

/**
 * 该接口的实现类都是具体的观察者
 */
public interface Observer {
    public void update();
}
